查看原文
其他

每天学习一点R:22.饼图的绘制

红皇后学术 红皇后学术 2023-08-18

今天给大家介绍几个基本的饼图绘制方法,主要涉及的函数就是pie()和pie3D()

pie函数绘制饼图

pie函数是R自带的一个基础函数,专门用于绘制饼图,还是照例先给出使用参数。

pie(x, labels = names(x), edges = 200, radius = 0.8, clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL,    lty = NULL, main = NULL, ...)

各参数意义:

  • x,绘制饼图的数据,数据的大小在饼图中用面积反应;

  • labels,图像中不同扇形的标签,默认为数据的名字,也可自定义;

  • edges,规定饼图的圆环采用多少个连续的边构成,也就是说可以将饼图变为多边形图;

  • radius,规定圆的半径;

  • colckwise,TRUE时饼图为顺时针方向绘制,FALSE时为逆时针方向绘制;

  • init.angle,规定饼图第一个数值开始绘制时的起始角度;

  • density,是否绘制阴影线;

  • angle,阴影线的角度;

  • col,扇区的颜色;

  • border,边界的颜色;

  • lty,边界的线型

  • main,标题内容。

接下来进入正题,开始图像的绘制,首先随便建立一个绘图的数据,饼图的数据其实很简单,就两列,一列是绘制饼图个扇区的数值,另一个是其对应的名字。

a <- c("A","B","C","D","E","F","G")b <- c(17,13,8,5,10,2,9)

之后对数据进行一些处理,计算每一个绘图数据所占的比例,并制作响应的标签。

pct <- round(b/sum(b)*100) lab <- paste(a," ",pct,"%",sep="")d <- data.frame(a,b,lab)

将绘图数据按照数值进行排序。

d<- d[order(d[,"b"]),]

接下来绘制图像。

library(RColorBrewer)pie(d[,"b"],labels=NA,clockwise=T,col=brewer.pal(7,"Set1"), border="white",radius=0.9,cex=0.8,main="Pie chart")#添加图例legend("right",legend = lab,bty = "n",inset = c(-0.4,0),       xpd = T,fill = brewer.pal(7,"Set1"))

处理以图例形式展示各扇形形成之外,还有一种方式是在扇形的附近进行文字标注。

pie(d$b,labels=d$lab,col=rainbow(length(d$lab)), main="Pie Chart with Percentage")



pie3D绘制3D饼图

pie3D是属于plotrix包的一个函数,可以绘制具有3D结构的饼图,其具体参数如下:

pie3D(x,edges=NA,radius=1,height=0.1, theta=pi/6,start=0,border=par("fg"), col=NULL,labels=NULL,labelpos=NULL, labelcol=par("fg"),labelcex=1.5, sector.order=NULL,explode=0,shade=0.8,  mar=c(4,4,4,4),pty="s",...)

各参数意义:

  • x,代表饼图各部分比例的数值向量;

  • edges,形成圆形所需的线的个数,可以用此参数绘制多边形图;

  • radius,饼图的半径;

  • height,饼图的高度;

  • theta,投射图的观察角度;

  • start,在什么角度开始绘制第一个部分;

  • border,各部分边界的颜色;

  • col,各部分的填充颜色;

  • labels,各部分的标签;

  • labelpos,各部分标签的位置;

  • labelcol,标签的颜色;

  • labelcex,标签的大小;

  • sector.order,规定各部分的绘制顺序;

  • explode,饼图各部分的间距;

  • shade,规定3D图的阴影;

  • mar,饼图的边界;

  • pty,规定饼图是否绘制在正方体区域中,s代表正方体,m代表长方体。

还是用刚才的数据进行图形的绘制。

library(plotrix)pie3D(d$b, labels=d$lab, explode=0.1, height = 0.2, radius = 0.8, main="3D Pie Chart")

扩展阅读



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存